
# #1.：
# # #1.1获取当前程序运行的目录,并在此目录下面创建helloworld.txt,并将“Hello, world!” 写入到txt文件中，
# # 如果创建成功就返回：“文件创建成功”,如不成功就返回: “文件未创建成功”；
#
# import os
#
# #获取当前目录的路径
# now_dir = os.path.dirname(os.path.abspath(__file__))
#
# #创建文件的路径
# file_path = os.path.join(now_dir, "helloworld.txt")
#
# try:
#     #打开文件并写入
#     with open(file_path,"w" ,encoding = "UTF-8") as f:
#         f.write("Hello, world!")
#     print("文件创建成功")
# #捕获异常
# except:
#     print("文件未创建成功")

# # 1.2结合前面所学函数,创建10个txt文件,名字从helloworld0.txt-helloworld9.txt,内容写入为“Hello, world!”;
#
# n = 0
#
# def Fun():
#     global n
#     while n < 10:
#         with open(f"helloworld{n}.txt", "w", encoding = "UTF-8") as f:
#             f.write("Hello world")
#             n += 1
#
# Fun()

#1.3读取实验附件zaibiekangqiao.txt,分别实现一行一行读取、将所有行读取为一个列表、用for循环将所有行读取出来（注意回车）；
#注意编码格式,以及open的参数，了解read、readline、readlines的区别。


# # 2.将中国的四个直辖市写入到city.csv文件中,并读取city.csv文件内容,转化为列表;
# import csv
#
# # 中国的四个直辖市
# cities = ['北京市', '上海市', '天津市', '重庆市']
#
# # 写入到csv文件
# with open('city.csv', 'w', encoding='utf-8') as csv_f:
#     writer = csv.writer(csv_f)
#     # 写入表头
#     writer.writerow(['城市'])
#     # 写入四个直辖市
#     writer.writerows([[city] for city in cities])
#
# # 从csv文件读取内容并转化为列表
# with open('city.csv', 'r',  encoding='utf-8') as csv_f:
#     reader = csv.reader(csv_f)
#     # 跳过表头
#     next(reader)
#     # 读取所有行并转化为列表
#     cities_list = []
#     flag = 0
#     for i in reader:
#         if flag%2 == 1:
#             cities_list.append(i)
#         flag +=1
# # 打印列表内容
# print(cities_list)

# # 3：创建studentinfo.csv文件,将以下内容写入进去:
# # 学号,姓名,性别,班级
# # 20230101,不忘,男,23大数据1班
# # 20230201,初心,男,23大数据2班
# # 20230301,梦想,女,23大数据3班
# # (1) 读取此csv文件,将内容打印出来;
# # (2) 在最后一行追加以下内容:
#
# import csv
#
# info = ["20230101,不忘,男,23大数据1班", "20230201,初心,男,23大数据2班","20230301,梦想,女,23大数据3班"]
#
# with open("studentinfo.csv", "w", encoding = "UTF-8") as f:
#     writer = csv.writer(f)
#     writer.writerows([info_row] for info_row in info)
#
# # 新增的数据
# new_data = ['20230401, 奋斗, 男, 23大数据4班']
#
# # 追加到csv文件
# with open('studentinfo.csv', 'a', newline='', encoding='utf-8') as f:
#     writer = csv.writer(f)
#     writer.writerow(new_data)

# # 5.编写函数模拟猜100点。系统随机产生一个数，并且指定玩定最多可以猜测的次数，
# # 系统会根据玩具的猜测进行提示，玩家则可以根据系统提示对下一次的猜测进行适当调整。
#
# import random
#
# def Fun():
#     # 系统随机产生一个整数
#     n = random.randint(1, 100)
#     # 猜测次数
#     guess_count = 0
#
#     #玩家最多猜测次数
#     guess_limit = int(input("最多猜测次数(整数):"))
#     player_guess = None
#
#     print("游戏开始！")
#     print()
#     while guess_count < guess_limit:
#         guess = input("请猜一个1到100之间的数字: ")
#
#         # 尝试将输入转换为整数，如果不是整数则提示玩家重新输入
#         player_guess = int(guess)
#
#         # 增加猜测次数
#         guess_count += 1
#
#         # 判断玩家的猜测
#         if player_guess < n:
#             print("猜小了，请重新猜测。")
#         elif player_guess > n:
#             print("猜大了，请重新猜测。")
#         else:
#             print(f"恭喜你，猜对了！用了{guess_count}次猜中了数字{n}。")
#             break  # 猜中后退出循环
#     else:
#         print(f"很遗憾，你没有猜中。正确的数字是{n}。")
#
# #调用函数
# Fun()

def get_valid_score():
    while True:
        try:
            #输入分数
            score = float(input("请输入一个分数: "))
            return score
        except ValueError:
            print("输入无效，请输入一个有效的分数(异常)。")

#6.用户输入若干分数，求所有分数的平均值。每输一个分数后询问是否继续输入下一个分数，
# 回答“yes”就继续输入下一个分数,回答“no”就停止输入分数,输入其他,则停止,分数输入错误,
# 就抛出异常。
def main():
    scores = []
    while True:
        score = get_valid_score()
        scores.append(score)

        cont = input("是否继续输入下一个分数？(yes/no): ")
        if cont.lower() == 'yes':
            continue
        elif cont.lower() == 'no':
            break
        else:
            print("输入无效，程序已停止。")
            break

    if not scores:
        print("没有输入任何分数。")
    else:
        average = sum(scores) / len(scores)
        print("所有分数的平均值是:", average)


if __name__ == "__main__":
    main()